You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR publishes the Wave 3 performance pass across diffusion, diffusion-geometry, spectral, Hodge, and DEC paths.
What changed
added bench_diffgeo, Wave 3 perf note scaffolding, and IGNEOUS_PERF_NOTES_DIR support for the perf scripts
reused 1-form operators inside the 2-form diffusion-geometry path and rewrote the generic k-form weak derivative around denser block assembly
parallelized the generic form up-Laplacian assembly and removed an inner tiny solve with closed-form adjugate arithmetic
cached the normalized kernel operator for repeated eigensolve matvecs
fused and parallelized post-kNN diffusion-build passes while preserving the accepted sparse build path
reused gamma assembly in HodgeWorkspace
replaced circular workspace preparation with exact matrix formulas for Gamma(x, phi) and the scalar weak Laplacian
matrixized Hodge curl-energy assembly over cached Markov and gamma data
added a dense generalized spectrum fast path with Cholesky whitening and exact fallback
parallelized stable DEC face-incidence construction while preserving per-vertex face order
recorded kept and rejected experiments in notes/perf/20260306-wave3/
CI smoke impact vs main
The PR smoke workflow on GitHub compares this branch against main on GitHub runners with parallel backend and 4 threads. Those are the right numbers to use for branch-vs-main review.
Headline wins from the current smoke report:
bench_pipeline_hodge_main: 1.763 s -> 372.939 ms (-78.85%)
bench_hodge_phase_circular: 1.082 s -> 13.206 ms (-98.78%)
bench_hodge_phase_curl_energy: 294.807 ms -> 39.683 ms (-86.54%)
bench_hodge_phase_weak_derivative: 27.624 ms -> 4.518 ms (-83.64%)
bench_pipeline_diffusion_main/20: 67.129 ms -> 27.147 ms (-59.56%)
bench_pipeline_diffusion_main/100: 70.464 ms -> 30.595 ms (-56.58%)
bench_pipeline_spectral_main: 110.190 ms -> 50.714 ms (-53.98%)
bench_diffusion_build/2000: 54.226 ms -> 20.929 ms (-61.40%)
bench_weak_derivative/2000/16: 2.727 ms -> 121.210 us (-95.55%)
bench_curl_energy/2000/16: 10.989 ms -> 1.613 ms (-85.32%)
bench_eigenbasis/2000/16: 23.269 ms -> 14.480 ms (-37.77%)
bench_geometry_structure_ms/1000x1000: 89.510 ms -> 74.975 ms (-16.24%)
Local campaign deltas
Some larger numbers in the Wave 3 notes are measured against the campaign's earlier local Release baselines rather than directly against main. Those numbers capture the cumulative effect of the full optimization campaign on the local perf machine.
Examples from the kept Wave 3 artifacts:
bench_diffgeo_pipeline/4000/64/32/32: 4169.532 ms -> 145.730 ms
bench_pipeline_hodge_main: 3275.117 ms -> 149.293 ms
bench_pipeline_spectral_main: 216.192 ms -> 16.783 ms
igneous-diffusion-geometry --n-points 1000 --output-dir <tempdir>: real 1.40 -> 0.07
Validation
ctest --test-dir build --output-on-failure -j8
14/14 passing
targeted diffgeo, hodge, spectral, and DEC tests were run for each kept pass and logged in notes/perf/20260306-wave3/journal.md
Notes
the detailed campaign log, artifacts, and rejected experiments are in notes/perf/20260306-wave3/
the main remaining shared hotspot is still the large-basis diffusion eigenbasis solve
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR publishes the Wave 3 performance pass across diffusion, diffusion-geometry, spectral, Hodge, and DEC paths.
What changed
bench_diffgeo, Wave 3 perf note scaffolding, andIGNEOUS_PERF_NOTES_DIRsupport for the perf scriptsHodgeWorkspaceGamma(x, phi)and the scalar weak Laplaciannotes/perf/20260306-wave3/CI smoke impact vs
mainThe PR smoke workflow on GitHub compares this branch against
mainon GitHub runners withparallelbackend and4threads. Those are the right numbers to use for branch-vs-main review.Headline wins from the current smoke report:
bench_pipeline_hodge_main:1.763 s -> 372.939 ms(-78.85%)bench_hodge_phase_circular:1.082 s -> 13.206 ms(-98.78%)bench_hodge_phase_curl_energy:294.807 ms -> 39.683 ms(-86.54%)bench_hodge_phase_weak_derivative:27.624 ms -> 4.518 ms(-83.64%)bench_pipeline_diffusion_main/20:67.129 ms -> 27.147 ms(-59.56%)bench_pipeline_diffusion_main/100:70.464 ms -> 30.595 ms(-56.58%)bench_pipeline_spectral_main:110.190 ms -> 50.714 ms(-53.98%)bench_diffusion_build/2000:54.226 ms -> 20.929 ms(-61.40%)bench_weak_derivative/2000/16:2.727 ms -> 121.210 us(-95.55%)bench_curl_energy/2000/16:10.989 ms -> 1.613 ms(-85.32%)bench_eigenbasis/2000/16:23.269 ms -> 14.480 ms(-37.77%)bench_geometry_structure_ms/1000x1000:89.510 ms -> 74.975 ms(-16.24%)Local campaign deltas
Some larger numbers in the Wave 3 notes are measured against the campaign's earlier local Release baselines rather than directly against
main. Those numbers capture the cumulative effect of the full optimization campaign on the local perf machine.Examples from the kept Wave 3 artifacts:
bench_diffgeo_pipeline/4000/64/32/32:4169.532 ms -> 145.730 msbench_pipeline_hodge_main:3275.117 ms -> 149.293 msbench_pipeline_spectral_main:216.192 ms -> 16.783 msigneous-diffusion-geometry --n-points 1000 --output-dir <tempdir>:real 1.40 -> 0.07Validation
ctest --test-dir build --output-on-failure -j814/14passingnotes/perf/20260306-wave3/journal.mdNotes
notes/perf/20260306-wave3/